Interactive dashboard for controlling delivery of dynamic push notifications

ABSTRACT

A computer-implemented method includes providing, by a server system, to a user, an interactive dashboard for creating an animated icon, receiving, by the server system, through the interactive dashboard, customization information for creating the animated icon from the user, generating, by the server system, the animated icon based on the received customization information, and causing, by the server system, one or more computing devices to display the generated animated icon on a display screen of the one or more computing devices.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent ApplicationSer. No. 62/265,791, filed Dec. 10, 2015, which is incorporated byreference herein in its entirety.

TECHNICAL FIELD

This disclosure relates to presenting interactive and dynamicallychanging information to users of electronic devices, such as smartphonesand the like.

BACKGROUND

Electronic devices (e.g., cellular phones, tablet computers,smartphones, personal data assistants, smart watches, and virtualreality devices) can facilitate interactions between two or moredifferent entities. For example, in some cases, a user can operate anelectronic device in order to transmit information to others through acommunications network. As another example, in some cases, a user canoperate an electronic device in order to receive and review informationfrom others through a communications network.

SUMMARY

Implementations for displaying interactive dynamic notifications on auser device are described herein.

In one aspect, for example, a computer-implemented method for providingan animated icon is descried. The method includes providing, by a serversystem, to a user, an interactive dashboard for creating an animatedicon, receiving, by the server system, through the interactivedashboard, customization information for creating the animated icon fromthe user, generating, by the server system, the animated icon based onthe received customization information, and causing, by the serversystem, one or more computing devices to display the generated animatedicon on a display screen of the one or more computing devices.

The foregoing and other aspects can each optionally include one or moreof the following features, alone or in combination. The customizationinformation can include notification content that the animated iconillustrates, the notification content being associated with a campaign.The customization information can include audience of the notificationcontent and a time frame for displaying the animated icon to theaudience.

Other aspects, features and advantages will be apparent from thedetailed description, the drawings and the claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 depicts an example user interface.

FIGS. 2A-F depict an example icon that is dynamically animated in orderto display and receive information.

FIG. 3A depicts an example administrator interface.

FIG. 3B depicts an example analytics interface.

FIGS. 4A-4AAI depict examples of screenshots for an administrativedashboard.

FIG. 5 is a flow chart illustrating a method of creating an interactivedynamic push campaign using the dashboard of FIGS. 4A-4AAI.

FIG. 6 is a diagram of an example system architecture for implementinginteractive dynamic push notifications and campaigns.

FIG. 7 is a component view of the architecture.

FIG. 8 illustrates an example of a sequential flow for the pushnotification architecture.

DETAILED DESCRIPTION

Implementations for displaying interactive dynamic notifications on auser device are described herein. One or more implementations can beused for advertising goods or services, or relaying information relevantto an application, company, and/or user. The user can also interact withthese notifications to request additional information, executeapplications, transmit information to others, and/or perform any otherfunction.

In an example implementation, a user device (e.g., a smartphone or atablet computer) includes a display screen that is used to presentinformation visually to a user. For example, the display screen presentsa graphical user interface, upon which one or more applications are eachvisually represented using a graphical icon. In the followingdescription, references to “icon” should be understood as applying toicons, apps, instant apps and/or widgets. References to “icon” can alsorefer to icons associated with Progressive Web Applications (PWAs).Specifically, a PWA is an app that can allow a user to visit an URL andimmediately start using the app without actually installing the app inthe user's device. A PWA can eliminate unnecessary steps for using anapp such as downloading, installing, and opening the app. The icons canbe dynamically animated in order to display information to the userand/or receive information from the user. As one example, an iconrepresenting a retail store can be animated to display promotionsoffered by the retail store. As another example, an icon representing abank can be animated to display information regarding a user'srelationship with the bank (e.g., balance or transaction information).As yet another example, an icon representing an auction site can beanimated to display information regarding outcomes of a user's bids topurchase an item. As yet another example, an icon representing a datingservice can be animated to display information regarding datingprospects. This animation can be “pushed” to the user device (e.g., froma server system) in order to provide the user with notifications inreal-time or substantially real-time. The receiver may respond with hisor her dating information.

The graphical icons can be dynamically animated in various ways,including modifying the icon's color, shape, and/or displayed image withor without audio. For example, an animated icon can blink, change color,and/or change shape. As another example, an animated icon can depict theappearance, modification, and/or disappearance of text and objectsdisplayed within the icon. As another example, an animated icon candisplay an animation, movie, audio and/or video within a portion of theicon or across the entirety of the icon. As another example, an animatedicon can display a commercial or cartoon within a portion of the icon oracross the entirety of the icon. In some cases, the animated icon can behidden from view, then selectively revealed or displayed to the user.This can be useful, for example, to notify users of particular types ofinformation (e.g., receipt of a message) while conserving space in theuser interface when no information is being displayed.

In some instances, icons and their animations can be customized so thatthey display the desired information. For example, an icon can becustomized by a user of the device, other users, advertisers, retailers,banks, or any other entity.

The user can also interact with the icon/app/widget. For example, theuser can select the icon/app/widget/in order to request additionalinformation, execute applications, transmit information to others, loadvideos, open videos, and/or perform other operations. A user caninteract with the icon/app/widget in one or more different ways. Forexample, in some cases, a device can include a touch sensitive displayscreen that detects when the user touches or otherwise physicallyinteracts with the display screen; to select an icon, the user can usehis finger or hand to click, touch, or hold the display screen above thelocation where the icon appears. As another example, in some cases, adevice can include an input device (e.g., a mouse, a trackpad, akeyboard, a joystick, a stylus, a dial, an eye-tracking device, or avoice-command or gesture-tracking device) that allows a user to move oractivate a selection element of the graphical user interface (e.g., acursor or selection box) on the graphical display; to select an icon,the user can use the input device to move the selection element over theicon and confirm his selection. In some cases, when the user interactswith the icon, information regarding the user's interaction istransmitted to a third party (e.g., an administrator for theapplication, an advertiser, a retailer, or any other party). As anexample, in some cases, information regarding the user installing theapplication (and accompanying icon), the time and nature of the user'sinteraction with the icon, and the user's location when he interactedwith the icon can be transmitted to a third party for analysis. Thisinformation can be combined with other information (e.g., other usagedata related to one or more users) in order to obtain more detailedinformation regarding each user's behavior.

An example user interface 100 is shown in FIG. 1. User interface 100includes several icons 110, each of which represents a particularapplication that is available on an electronic device. A user can selectany one of the icons (e.g., by touching a graphical representation of anicon on a touch-sensitive or pressure-sensitive display device orclicking on a graphical representation of an icon using an input devicesuch as a mouse or a voice-command device) in order to execute theassociated application. For example, a user can touch a graphicalrepresentation of an icon corresponding to a “Macy's” application inorder to execute a “Macy's” application. In some cases, the userinterface 100 can be referred to as a “launcher,” a “home screen,” a“spring board,” or a “start screen.”

One or more of the icons 110 can be dynamically animated in order todisplay information to the user. In some cases, a dynamically animatedicon can be presented as a series of static images (e.g., “frames”) thatvisually differ from each other in some way. When viewed as a sequence,the images provide an appearance of motion or dynamic change. In somecases, the differences between sequential images can be relativelyslight, such that the sequence of images provides an appearance of fluidmotion. As an example, FIGS. 2A-F show, in sequence, the appearance ofthe icon 110 over a period of time. As shown in FIG. 2A, the icon 110initially shows a star shape (e.g., representing a logo of anapplication or organization). As shown in FIGS. 2B-C, a tree shape isdepicted entering the icon and covering the star shape. As shown in FIG.2D-E, the tree shape is depicted leaving the icon, revealing apromotional message. As shown in FIG. 2F, the promotional message ismaintained.

Although one example animation sequence is shown in FIGS. 2A-F, this ismerely an illustrative example. In general, icons can be dynamicallyanimated in various ways, including modifications to its color, shape,and displayed image. Further, animations can be played a single time(e.g., by playing a single animation sequence from the beginning to theend) and/or repeated (e.g., by playing the animation sequence multipletimes, either with or without a period of rest in between).

In some cases, a dynamically animated icon can display a movie or video(e.g., a movie or video with or without accompanying sound) within aportion of the icon or across the entirety of the icon. For example, insome cases, an animated icon can display a live-action film (e.g., afilm produced using one or more live actors, physical objects, and/orreal-world locations). Thus, a live-action film can be presented withinthe icon in order to display information to the user. In some cases, thelive-action film can be presented in a native video format (e.g., avideo file), or it can be represented in an animated image format (e.g.,an animated GIF) with or without audio.

In some cases, a dynamically animated icon can simultaneously depictseveral display elements (e.g., several different shapes, lines,objects, and/or patterns), where at least some of the display elementsappear to be moving differently from others. For example, in some cases,a dynamically animated icon can depict a first display element thatappears to be traveling in one direction, while simultaneously depictinga second display element that appears to be traveling in a differentdirection. As another example, in addition to the first and seconddisplay elements, the dynamically icon can simultaneously depict a thirddisplay element that appears to be changing shape. As another example,in addition to the first, second, and third display elements, thedynamically icon can simultaneously depict a fourth display element thatappears to be changing size. In this manner, several different displayelements can be displayed simultaneously on an animated icon, each ofwhich can be moving differently from and/or independently of oneanother.

In some cases, a dynamically animated icon does not merely depict one ormore static display elements (e.g., static images or text) and cyclebetween those static display elements using transition effects (e.g., a“sliding” effect, a “screen wipe” effect, or “flipping” effect).Instead, in some cases, a dynamically animated icon can depict one ormore display elements that appear to be interacting with each other in adynamic manner. As an example, in some cases, a dynamically animatedicon can depict one or more articulating objects (e.g., cartoonrepresentations of persons, animals, figures, or objects) and/or one ormore objects that appear to be physically interacting with each other.Thus, in some cases, a dynamically animated icon does not merely displaystatic images or text according to a transition effect, and insteadprovides the user with a more vibrant visual experience.

In some cases, an icon can be dynamically animated such that the icon ishidden from view (e.g., not displayed on a user interface), thenselectively revealed or displayed to the user (e.g., graphicallydisplayed on the user interface such that it becomes visible to a user).In some cases, when the icon is hidden, a portion of the user interfacecan be reserved for the icon, such that it is positioned at a particularlocation once it is revealed. For example, referring to FIG. 1, the userinterface 100 can reserve a region 120 (denoted by a dotted box) for ahidden icon, such that other icons do not occupy the region 120. Whenthe icon is revealed, it is displayed in the region 120.

Icons and their animations can be customized so that they display thedesired information. For instance, in an example implementation, theicon 110 is typically static (e.g., not animated), such that it appearsas a traditional still image on the graphical interface 100. However,when a particular event occurs with respect to an application (e.g., theavailability of a promotional offer, the availability of a message froman organization associated with an application, a change in status ofthe application, or any other information), the icon 110 is animated toindicate that the particular event has occurred. This can have theeffect of attracting the user's attention, and notifying the user thatthe event has occurred. The user can then select the icon to learn moreinformation regarding the event.

In some cases, an icon 110 can be dynamically animated to showpromotional offers. For example, in some cases, an icon 110 canrepresent a shopping application (e.g., an application related to aparticular retailer). When a promotion is made available to the user forthat application (e.g., a promotion offered by the retailer), the icon110 representing the application can be animated to indicate theavailability of that promotion. Once the promotion is no longeravailable, the animation can cease or the icon 110 can disappear.

In some cases, an icon 110 can be dynamically animated to show thereceipt of messages from a messaging service (e.g., an e-mail, aninstant message, a social media message). For example, in some cases, anicon 110 can represent a messaging application (e.g., a clientapplication that provides a user with access to a messaging system orsocial media platform). When a message is transmitted to the user ofthat application, the icon 110 representing the application can beanimated to indicate receipt of that message. In some cases, the messagecan be animated to show content from the message. For example, the iconcan be animated to show text, images, movies, videos from the message.In some cases, for example when the icon includes a movie, video, oraudio clip having an audio portion, the audio portion can be played asthe icon is animated. Once the message has been read or discarded, theanimation can cease or the icon 110 can disappear.

In some cases, an icon 110 can be dynamically animated to show thestatus of a financial transaction or the status of a financial account.For example, in some cases, an icon 110 can represent a banking orbrokerage application (e.g., an application that provides a user withaccess to a financial account at a financial institution). When aparticular financial transaction has been conducted (e.g., a transfer ofmoney or assets to or from the user's financial account), the icon 110representing the application can be animated to indicate that thefinancial transaction has been conducted. For instance, the icon 110 canbe animated to indicate when a purchase of a stock has been successfullycompleted, or to verify the purchase of any other security of asset.Further, the icon can be animated to show the status of the user'sfinancial account (e.g., the user's account balance). The user can stopthe animation (e.g., by interacting with the icon) once he has receivedthe information. In some cases, sensitive information (e.g., accountbalances or payment confirmations) can be hidden unless the userauthenticates his identity (e.g., by providing a password, a biometricinput such as a fingerprint, voice-command or any other credential).

Although an example implementations are described above, these aremerely illustrative examples. In practice, animations can be used toindicate other types of information, statuses, or events directly on auser interface (e.g., on an application launcher interface, such as a“launcher,” a “home screen,” a “spring board,” or a “start screen).

In some cases, an application can respond in one, two, three, or moredifferent ways, depending on whether the application's icon was animatedwhen the user selected it. For example, in some cases, when the userselects the icon while the icon is static (e.g., not animated), thedevice executes the application associated with the icon and presentsthe user with a default application interface (e.g., a “general” userinterface). However, when the user selects the icon while it is animateda first way, the device executes the application and presents the userwith a secondary application interface (e.g., a “promotional” interfacethat provides more information regarding a particular promotion).Further, when the user selects the icon while it is animated a secondway, the device executes the application and presents the user with atertiary application interface (e.g., a “notification” interface thatprovides more information regarding a particular notification or alert).In this manner, the application can be executed differently, dependingon whether the icon is animated at the time of selection. In some cases,the user can interact with the icon in one two or more different ways inorder to perform different functions. For example, in some cases, theuser can select an icon once (e.g., by tapping a touch sensitivedisplay) to perform a first action (e.g., execute an applicationaccording to a default behavior), select the icon twice (e.g., by doubletapping) to perform a second action (e.g., execute an application in analternative interface), and select the icon three times (e.g., by tripletapping) to perform a second action (e.g., execute an application inanother alternative interface). In some cases, the user also can performgestures with respect to the icon (e.g., using his finger or hand todraw a line, a circle, a check mark, or an “X” mark on the device'sdisplay screen above the location where the icon appears or initiate aresponse using a voice command) in order to cause the application toperform different actions. In some cases, the user can vary the lengthof time in which he performs a gesture (e.g., pressing the device'sdisplay screen for a length of time vs. tapping the device's displayscreen for a shorter period of time) in order to perform differentfunctions. In some cases, a user can define custom gestures, andassociate those gestures with particular functions.

Icons and their animations can be customized so that they display thedesired information. For example, an icon can be customized by a user ofthe device, other users, advertisers, retailers, banks, or any otherentity. In some cases, icon animations can be customized by the entitythat is associated with an application. For example, if an iconrepresents an application provided by retailer, the retailer (or itsagent) can customize the animation in order to display the desiredinformation. As another example, if an icon represents an applicationprovided by a bank, the bank (or its agent) can customize the animationin order to display the desired information.

In some cases, icon animation can be selectively controlled for each ofmultiple sub-sets of users. For example, in some cases, even thoughseveral users each may have a particular application installed,different sub-sets of users each may see different icon animations. Insome cases, users can be divided into different sub-sets based ondemographic information. This can be particularly useful, for example,in providing targeted advertising, such that a particular promotion ispresented to particular types of users who may find the promotionuseful, while not presenting the promotion to other users who might notfind the promotion useful. In some cases, a user's demographicinformation can be determined based on a user's input. For example, insome implementations, a user can input his gender, age, location,ethnicity, interests, income, family information, and/or any otherdemographic information into an application associated with the animatedicon. The collection or use of such information may, in some situations,be subject to privacy laws or regulations.

In some cases, icon animations can be generated or customized by a userof a device. For example, the user can input his own animations orselect particular animations from among a collection of pre-definedanimations, such that icons are animated according to the user'spreferences. This can be useful, for example, as it allows the user toselect animations that are more aesthetically pleasing and/or moreuseful to that user.

As another example, the user can associate particular animations withparticular criteria. For example, the user can specify that an iconshould animate a certain way in order to display one type of information(e.g., a promotional offer from one merchant), and that the icon shouldanimate a different way in order to display another type of information(e.g., a message from another user).

As another example, the user can specify the conditions under which anicon will animate. For example, the user can select particular merchantsfrom which he wishes to receive promotional offers. Upon receipt of apromotional offer from one of the selected merchants, an icon cananimate to present the promotion to the user. In some cases, a user canbe presented with a list or grid of several different merchants, and auser can select one or more of these merchants to indicate particularmerchants from which he wishes to receive promotional offers, ordeselect one or more of these merchants to indicate particular merchantsfrom which he no longer wishes to receive promotional offers.

As another example, the user can control animations (e.g., byselectively starting or stopping animations). This can be useful, forexample, as it allows the user to cease icon animations that he is nolonger interested in viewing, and initiate and/or maintain animationsthat he is interested in viewing. As an example, in some cases, an iconmight be animated to alert the user to a promotion, and the user cancease the animation after he is no longer interested in the promotion.In some cases, the user can control animations by inputting commands,for example by selecting the icon (e.g., by tapping the device's displayscreen above the location where the icon appears) or performing agesture with respect to the icon (e.g., by drawing a line on thedevice's display screen above the location where the icon appears).

In some cases, a user can specify which icons he wishes to be animated.For example, the user can specify that a first sub-set of icons shouldbe animated in order to display particular types of information, while asecond sub-set of icons should remain static. This can be useful, forexample, as it allows the user to specify that icons pertaining toparticular applications of interest should be animated, while specifyingthat icons pertaining to other applications (e.g., applications in whichhe has less interested) are not animated. In some implementations, theuser can specify each of these icons manually. In some implementations,icons can be specified at least in part, based on automated processesthat identify icons that may be of interest to the user.

In some cases, icon animations can be customized by a third party thatis not directly related to the user or entity that associated with theapplication. For example, in some cases, icons can be animated by athird party advertiser that maintains promotional offers or advertisingcampaigns on behalf of a retailer, but otherwise is not directly relatedto the retailer. In some cases, the advertiser can customize the iconanimations on behalf of one or more entities (e.g., one or moreretailer) as a service to those entities. Icons provided bythird-parties can replace the existing icon of an application, or can bepresented in conjunction with the existing icon of the application. Forexample, in some cases, an animated icon provided by an advertiser canreplace the existing icon of a retailer's application, such that theuser accesses the application through the icon provided by theadvertiser. This can be useful, for example, as it allows the advertiserand retailer to maintain a single unified presence with respect to theuser. As another example, in some cases, an animated icon provided by anadvertiser can be displayed in addition to the existing icon of theretailer's application, such that the user can access the applicationthrough either icon. This can be useful, for example, as it allows theretailer and the advertiser to maintain distinct presences with respectto the user. In practice, either arrangement can be used, depending onthe relationship between the party maintaining the application and thethird-party providing the animated icon.

In some cases, animations can be time sensitive, such that they occurduring particular periods of time, and do not occur during other periodsof time. This can be beneficial, for example, in presenting timesensitive information or information that may be of diminishedusefulness outside of a particular range of time. For example,animations can be time sensitive in order to provide informationregarding limited promotions or time-sensitive messages. In some cases,icon animations can be scheduled ahead of time (e.g., by anadministrator) such that they are initiated at a particular point intime in the future. This allows administrators to coordinate the releaseof information (e.g., to coordinate the release of information as a partof a larger advertising campaign, or to coordinate the release ofinformation upon the planned release of a product or service).

In some instances, the animation of an icon can be controlled through auser interface (e.g., an administrator interface). An exampleadministrator interface 300 is shown in FIG. 3A. A user (e.g., anadministrator) can selectively enable or disable animations on one ormore user devices (e.g., devices operated by one or more customers,clients, or other users) by selecting an appropriate option on theadministration interface 300. For example, an administrator can toggle afirst animation by selecting an interface element 310, and toggle asecond animation by selecting an interface element 320. In response, thefirst animation and second animation are selectively enabled or disabledon one or more customers' devices. In some cases, an administratorassociated with an advertiser can control icon animations on severalcustomers' devices in order to display promotional informationselectively to those customers. An administrator also can edit thecontent shown by the icon animations selectively. For example, theadministrator can edit the content of the first animation by select aninterface element 330, and can edit the content of the second animationby select an interface element 340. In response, the administratorinterface 300 can present the administrator with an appropriateinterface (e.g., an animation editing interface) such that theadministrator can make changes to the animation.

In some cases, when the user (e.g., a customer) interacts with an icon,information regarding the user's interaction is transmitted to a thirdparty (e.g., an administrator for the application, an advertiser, aretailer, or any other party). This information can be viewed using auser interface (e.g., an analytics interface). An example analyticsinterface 400 is shown in FIG. 3B. A user (e.g., an administrator) canuse the analytics interface 400 to view how another user (e.g., acustomer) interacts with the icon. For example, the administrator canview when the customer has single tapped the icon (e.g., as shown byevent 402), and when the customer has double tapped an icon (e.g., asshown by event 404). In some cases, the analytics interface 400 can showinformation regarding a single user or several users (e.g., a singlecustomer or several customers). In some cases, information shown inanalytics interface 400 can be filtered in order to show informationselectively according to one or more criteria (e.g., informationpertaining to a particular user or group of users).

An administrative dashboard allows a user (e.g., administrator) to setup user accounts, register an app to an account, create a campaign forpush notifications using the types of animated icons described above,manage the notifications, manage the audience of the notifications, andview analytics, reports, revenue goals and settings.

FIGS. 4A-4AAI illustrate examples of screenshots for the dashboard in aparticular implementation:

-   -   User Account/Sign up/Login Screens (FIG. 4A)    -   Register an App to the Account/Add an App (FIGS. 4B-4F)    -   Create DynamicPush Notifications as a campaign (FIGS. 4G-4M)        -   Add an action to DynamicPush Notification (FIGS. 4N-4AR)    -   DynamicPush Dashboard (FIGS. 4AS-4AT)    -   Manage DynamicPush Animation Notification/Campaign Management        (FIGS. 4AU-4AAD)    -   Manage Audience of DynamicPush Animation Notifications (FIGS.        4AAE-4AAH)    -   Analytics (FIG. AAI)        The screen shots may vary in some implementations, and fewer        than all the features, or additional features, may be present in        some cases.

FIG. 5 is a flow chart illustrating a method of creating an interactivepush campaign using the dashboard. The method can include a promotionalpage design and programming stage (see left-hand side of FIG. 5), aswell as a dynamic push drafting stage (right-hand side of FIG. 5).

FIG. 6 illustrates an example of the logical representation of thearchitecture for a system operable to implement the push campaigns. FIG.7 is a component view of the architecture. FIG. 8 illustrates an exampleof the sequential flow for the architecture. In the illustrated example,DynamicPush® SDK with Admin Dashboard is an animated push notificationservice product named “DynamicPush®.” Architecture is designed anddeveloped to support both Android and iOS platforms as well as others inthe form of SDKs. For Android platforms, DynamicPush® can be anapplication without a Launcher icon and can display notifications on topof all user content and apps. For iOS platforms, DynamicPush® can useiOS expanded detail view with 3D Touch (iOS versions 10 and up) thatdisplays rich content, such as an animation or a video; or an applet,such as a map or a calendar with or without audio. The admin webapplication can manage the DynamicPush® Animated Push Notifications, forexample as a campaigns via Google Cloud Messaging Systems and AmazonSimple Notification Service (SNS) as Pub-sub Service for Mobile andEnterprise Messaging and facilitation of analytics tracked byDynamicPush® with different attributes of Mobile App Users (UserAttributes, User Activities, User locations, Retarget Audiences andMarketing Activities), text, app pages, web page url and in-app messageswith animations. The DynamicPush® can be provided using the Java,Android Java using Android Studio, Objective-C, and Swift using X-CodeiOS Platform on Unix Platform and hosted on Amazon Cloud. ThePresentation (UI) tier, Web Admin Dashboard can be provided using Rubyon Rails, AngularJS, jQuery, Bootstrap framework following the HTML 5and CSS3 standards. The business tier will be instantiated using Rubygems Library. The data access and connected to MySQL data base, No SQL,Big Data and AWS S3 Web RESTful Services.

In some implementations, dynamically animated icons can be incorporatedinto an existing application using one or more software development kitsSDKs in order to provide interactive dynamic push notificationfunctionality. An SDK can be, for example, a set of software developmenttools that facilitates the creation of applications or the creation ofsub-routines that can be incorporated into an existing application. Insome cases, an SDK can include one or more application programminginterfaces (APIs) (e.g., sets of routines, protocols, and tools thatexpress a software component in terms of its operations, inputs,outputs, and underlying types). In some cases, an SDK can be provided toa software developer by a third party (e.g., a party who is not directlyinvolved in the development of the existing application). For instance,an advertiser can provide a merchant with an SDK that enables themerchant to add interactive dynamic push notification functionality tothe merchant's application.

In some cases, in addition to providing an SDK to a software developer,the third party can also provide the software developer with systemsthat manage the interactive dynamic push notification features of theapplication. For example, the third party can provide a server systemthat allows the software developer to generate icon animations andtransmit those animations to one or more user devices running thesoftware developer's application. The server system can also receiveinformation regarding users' interactions with the application,aggregate and analyze the information, and present the information tothe software developer for review. This can be beneficial, for example,as it allows the software developer to incorporate interactive dynamicpush notification features into his own application without requiringthat he also provide his own systems to support and manage thosefeatures.

Although a third party, in some cases, can provide systems that supportand manage the interactive dynamic push notification features of anapplication, this need not be the case. For example, in some cases, athird party can provide a software developer with an SDK that enablesthe software developer to incorporate interactive dynamic pushnotification features into his application, but does not provide thesoftware developer with a server system to support or manage thosefeatures. The software developer can, in these cases, provide his ownserver system or otherwise acquire a server system independently fromthe third party to provide this functionality. This allows the softwaredeveloper to maintain greater control of his application and theinformation collected from its users. This can particularly beneficial,for example, if the software developer wishes to limit others fromaccessing potentially sensitive or private data. In some cases, iconanimations can be accompanied by auditory effects. For example, in somecases when a user's device animates an icon, the user's device can alsogenerate a particular sound (e.g., a sound effect, music, speech, and/orother audio). In some cases, this can be used to notify the user that ananimation is being played, even if the user is not currently viewing thedevice. In some cases, the sound can depend on the type of informationthat is being presented. For example, certain types of sound can beplayed for certain types of animations, such that the user candifferentiate between them.

Although example implementations are described with respect to userdevices such as smartphones and tablets, these are merely illustrativeexamples. In practice, implementations of animated icons can be usedwith any other type of electronic device, including desktop computercomputers, notebook computers, media players, “smart” TVs, digital videorecorders (DVRs), virtual reality systems, in-car systems for mobileapps that control a vehicle's dashboard display, intelligent devicesthat include voice recognition, watches and other wearable intelligentdevices (e.g., smart glasses).

Further, although example implementations are described with respect to“icons,” an “icon” can, in some cases, encompass any graphical elementthat represents an application on a user interface, presents informationpertaining to the application, or is otherwise associated with theapplication. For example, in some cases, an icon can include graphicalelements such as widgets, images, thumbnails, textual labels, and/orcombinations thereof. As described above, any of these graphicalelements can be animated as described above in order to presentinteractive and dynamically changing information to users of electronicdevices. Likewise, the user can interact with these any of thesegraphical elements in order to perform a variety of tasks on theirelectronic devices.

Some implementations of subject matter and operations described in thisspecification can be implemented in digital electronic circuitry, or incomputer software, firmware, or hardware, including the structuresdisclosed in this specification and their structural equivalents, or incombinations of one or more of them.

Some implementations described in this specification can be implementedas one or more groups or modules of digital electronic circuitry,computer software, firmware, or hardware, or in combinations of one ormore of them. Although different modules can be used, each module neednot be distinct, and multiple modules can be implemented on the samedigital electronic circuitry, computer software, firmware, or hardware,or combination thereof.

Some implementations described in this specification can be implementedas one or more computer programs, i.e., one or more modules of computerprogram instructions, encoded on computer storage medium for executionby, or to control the operation of, data processing apparatus. Acomputer storage medium can be, or can be included in, acomputer-readable storage device, a computer-readable storage substrate,a random or serial access memory array or device, or a combination ofone or more of them.

Moreover, while a computer storage medium is not a propagated signal, acomputer storage medium can be a source or destination of computerprogram instructions encoded in an artificially generated propagatedsignal. The computer storage medium can also be, or be included in, oneor more separate physical components or media (e.g., multiple CDs,disks, or other storage devices).

The term “data processing apparatus” encompasses all kinds of apparatus,devices, and machines for processing data, including by way of example aprogrammable processor, a computer, a system on a chip, or multipleones, or combinations, of the foregoing. The apparatus can includespecial purpose logic circuitry, e.g., an FPGA (field programmable gatearray) or an ASIC (application specific integrated circuit). Theapparatus can also include, in addition to hardware, code that createsan execution environment for the computer program in question, e.g.,code that constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, a cross-platform runtimeenvironment, a virtual machine, or a combination of one or more of them.The apparatus and execution environment can realize various differentcomputing model infrastructures, such as web services, distributedcomputing and grid computing infrastructures.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, declarative orprocedural languages. A computer program may, but need not, correspondto a file in a file system. A program can be stored in a portion of afile that holds other programs or data (e.g., one or more scripts storedin a markup language document), in a single file dedicated to theprogram in question, or in multiple coordinated files (e.g., files thatstore one or more modules, sub programs, or portions of code). Acomputer program can be deployed to be executed on one computer or onmultiple computers that are located at one site or distributed acrossmultiple sites and interconnected by a communication network.

Some of the processes and logic flows described in this specificationcan be performed by one or more programmable processors executing one ormore computer programs to perform actions by operating on input data andgenerating output. The processes and logic flows can also be performedby, and apparatus can also be implemented as, special purpose logiccircuitry, e.g., an FPGA (field programmable gate array) or an ASIC(application specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andprocessors of any kind of digital computer. Generally, a processor willreceive instructions and data from a read only memory or a random accessmemory or both. A computer includes a processor for performing actionsin accordance with instructions and one or more memory devices forstoring instructions and data. A computer may also include, or beoperatively coupled to receive data from or transfer data to, or both,one or more mass storage devices for storing data, e.g., magnetic,magneto optical disks, or optical disks. However, a computer need nothave such devices. Devices suitable for storing computer programinstructions and data include all forms of non-volatile memory, mediaand memory devices, including by way of example semiconductor memorydevices (e.g., EPROM, EEPROM, flash memory devices, and others),magnetic disks (e.g., internal hard disks, removable disks, and others),magneto optical disks, and CD ROM and DVD-ROM disks. The processor andthe memory can be supplemented by, or incorporated in, special purposelogic circuitry.

To provide for interaction with a user, operations can be implemented ona computer having a display device (e.g., a monitor, or another type ofdisplay device) for displaying information to the user and a keyboardand a pointing device (e.g., a mouse, a trackball, a tablet, a touchsensitive screen, or another type of pointing device) by which the usercan provide input to the computer. Other kinds of devices can be used toprovide for interaction with a user as well; for example, feedbackprovided to the user can be any form of sensory feedback, e.g., visualfeedback, auditory feedback, or tactile feedback; and input from theuser can be received in any form, including acoustic, speech, or tactileinput. In addition, a computer can interact with a user by sendingdocuments to and receiving documents from a device that is used by theuser; for example, by sending web pages to a web browser on a user'sclient device in response to requests received from the web browser.

A computer system may include a single computing device, or multiplecomputers that operate in proximity or generally remote from each otherand typically interact through a communication network. Examples ofcommunication networks include a local area network (“LAN”) and a widearea network (“WAN”), an inter-network (e.g., the Internet), a networkcomprising a satellite link, and peer-to-peer networks (e.g., ad hocpeer-to-peer networks). A relationship of client and server may arise byvirtue of computer programs running on the respective computers andhaving a client-server relationship to each other.

The foregoing techniques and features can be used in a wide range ofapplications. Examples include, but are not limited, to the following:

-   -   Clothing/Shoes Retailers and Wholesalers who want to engage        customers with new items, special sales, targeted discounts, and        other alerts.    -   Software Products and Service Providers who want to engage        customers with alerts about upcoming software updates and bug        fixes.    -   Technology Retailers and Wholesalers who want to engage        customers with new items, special sales, targeted discounts, and        other alerts such as recalls or product updates.    -   Video Game and Computer Game Providers who want to engage        customers with new items, special sales, targeted discounts, and        other alerts such as software updates and bug fixes.    -   Sports Organizations and Venues that Host Live Events who want        to engage customers with new events, performances, appearances,        special sales, targeted discounts, and other alerts.    -   Food Service Providers who want to engage customers with new        items, special sales, targeted discounts, and other alerts.    -   Banks and Financial Institutions who want to engage customers        with account updates, fraud alert, low balance, and other        alerts.    -   Federal, State, and Local Governments and Government Related        Organizations who want to engage civilians with traffic or        service updates/announcements, possible threat or emergency        alerts, reminders about days for refuse collection and parking        rules, and other alerts.    -   Weather and Geological Services who want to engage customers        with inclement or hazardous weather alerts, safe zone        directions, and other alerts.    -   Individual Users who want to engage friends, family members, or        personal network with personal alerts such as upcoming birthdays        or events, personal “for sale” items, personal marketing        ventures, and other alerts.    -   Gambling sites    -   Dating sites    -   Music retailers and ticket sales    -   Television shopping and Retail    -   Auction sites    -   Messaging activities    -   Social networking activities    -   Sports and Fantasy sports

Various modifications may be made without departing from the spirit andscope of the disclosure. Accordingly, other implementations are withinthe scope of the claims.

What is claimed is:
 1. A computer-implemented method for providing ananimated icon, the method comprising: providing, by a server system, toa user, an interactive dashboard for creating an animated icon;receiving, by the server system, through the interactive dashboard,customization information for creating the animated icon from the user;generating, by the server system, the animated icon based on thereceived customization information; and causing, by the server system,one or more computing devices to display the generated animated icon onthe one or more computing devices.
 2. The method of claim 1, wherein thecustomization information includes notification content that theanimated icon illustrates, the notification content being associatedwith a campaign.
 3. The method of claim 2, wherein the customizationinformation includes audience of the notification content and a timeframe for displaying the animated icon to the audience.